//
// Description: 5855. 找出数组中的第 K 大整数
// Created by Loading on 2021/8/29.
//

#include <bits/stdc++.h>

using namespace std;

string kthLargestNumber(vector<string> &nums, int k) {
    /* 在比较函数中，不可使用 s[i] 遍历访问 string 中的元素，否则提交会出现 heap-buffer-overflow 执行出错 */
    nth_element(nums.begin(), nums.begin() + k - 1, nums.end(), [](const string &s1, const string &s2) {
        return s1.size() > s2.size() || (s1.size() == s2.size() && s1 > s2);
    });

    return nums[k - 1];
}

int main() {
    vector<string> nums = {"0", "0", "0", "0", "10"};
    int k = 3;
    string res = kthLargestNumber(nums, k);
    cout << res << endl;

    return 0;
}